package com.daxue.design.singleton;

/**
 * @author daxue0929
 * @date 2023/2/3
 *
 * 饿汉式（静态常量）
 *  1. 构造器私有化
 *  2. 类的内部创建一个私有静态常量对象
 *  3. 向外暴露一个静态的公共方法。
 *
 * 解析：
 *  1. 优点：
 *      这种写法比较简单，就是在类装载的时候完成实例化，避免线程同步的问题。
 *
 *  2. 缺点：
 *      在类装载的时候完成实例化，没有达到Lzay Loading的效果，如果自始至终都没有用过这个实例，就会造成内存浪费
 *
 *  3. 这种方式基于classloder机制避免了多线程同步的问题，不过instance在类装载的时候就实例化了，
 *     在单例模式中大多都是调用instance方法，但是导致内装载的原因有很多种，
 *     因此不能确定有其他方法导致类装载，这个时候初始化就是饿汉式的。
 *
 *  4. 结论：
 *      这种单例模式可用，但可能造成内存浪费。
 */

public class SingleTon01 {

    private static SingleTon01 INSTANCE = new SingleTon01();

    private SingleTon01() {}

    public static SingleTon01 getINSTANCE() {
        return INSTANCE;
    }
}
